﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using VINETLIFE.BL;
using VINETLIFE.DO;
using System.Data;
using System.Web.UI.HtmlControls;

namespace VINETLIFE
{
    public partial class ProductCategory : System.Web.UI.Page
    {
        cmsProductBL data = new cmsProductBL();
        cmsProductDO itemProductDO = new cmsProductDO();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                LoadDrop();
            if (!string.IsNullOrEmpty(Request.QueryString["ID"]))
            {
                int productCategoryID = int.Parse(Request.QueryString["ID"]);
                if (!IsPostBack)
                {
                    if (Session["shop"] == null)
                    {
                        Session["shop"] = new MyShopCart();
                    }
                    cmsProductCategoryDO objCategory = new cmsProductCategoryBL().Select(new cmsProductCategoryDO() { ProductCategoryID = productCategoryID });
                    ltrCateName.Text = objCategory.ProductCategoryTitle;
                    ltrCateDesc.Text = objCategory.Description;
                    HtmlMeta metaKey = new HtmlMeta();
                    metaKey.Name = "keywords";
                    if (!string.IsNullOrEmpty(objCategory.MetaTag))
                        metaKey.Content = objCategory.MetaTag;
                    else
                        metaKey.Content = objCategory.Description;
                    Page.Header.Controls.Add(metaKey);
                    HtmlMeta metaDesc = new HtmlMeta();
                    metaDesc.Name = "description";
                    if (!string.IsNullOrEmpty(objCategory.MetaDes))
                        metaDesc.Content = objCategory.MetaDes;
                    else
                        metaDesc.Content = objCategory.Description;
                    Page.Header.Controls.Add(metaDesc);
                    if (!string.IsNullOrEmpty(objCategory.PageTitle))
                        Page.Title = objCategory.PageTitle;// + " | " + Ultility.WebTitle();
                    else
                        Page.Title = objCategory.ProductCategoryTitle;// +" | " + Ultility.WebTitle();
                }
                LoadProduct(productCategoryID);

            }
            else if (!string.IsNullOrEmpty(Request.QueryString["PriceId"]))
            {
                int priceId = Convert.ToInt32(Request.QueryString["PriceId"]);

                SearchPriceDO itemSearchPrice = new SearchPriceDO();
                itemSearchPrice.Id = priceId;
                itemSearchPrice = new SearchPriceBL().Select(itemSearchPrice);
                object fromPrice = string.Format("{0:0,0}", itemSearchPrice.FromPrice).ToString().Replace(",", "");
                object toPrice = string.Format("{0:0,0}", itemSearchPrice.ToPrice).ToString().Replace(",", "");
                if (!IsPostBack)
                {
                    ltrCateName.Text = "Kết quả tìm kiếm";
                    HtmlMeta metaKey = new HtmlMeta();
                    metaKey.Name = "keywords";
                    metaKey.Content = "Kết quả tìm kiếm TopBike";
                    Page.Header.Controls.Add(metaKey);
                    HtmlMeta metaDesc = new HtmlMeta();
                    metaDesc.Name = "description";
                    metaDesc.Content = "Kết quả tìm kiếm TopBike";
                    Page.Header.Controls.Add(metaDesc);
                    Page.Title = " Kết quả tìm kiếm | " + Ultility.WebTitle();
                }
                LoadProductByPrice(fromPrice, toPrice);
            }
            else if (!string.IsNullOrEmpty(Request.QueryString["OriginId"]))
            {
                int OriginId = Convert.ToInt32(Request.QueryString["OriginId"]);
                cmsOriginDO itemDO = new cmsOriginDO();
                itemDO.OriginID = OriginId;
                itemDO = new cmsOriginBL().Select(itemDO);
                string name = itemDO.Origin;
                if (!IsPostBack)
                {
                    ltrCateName.Text = name;
                    Page.Title = name;// +" | " + Ultility.WebTitle();
                }

                if (OriginId == 2)
                {
                    //ecogo
                    HtmlMeta metaKey = new HtmlMeta();
                    metaKey.Name = "keywords";
                    metaKey.Content = "nhà phân phối xe đạp điện gấp, xe đạp thể thao, xe đạp fixed gear chính hãng nhãn hiệu ecogo";
                    Page.Header.Controls.Add(metaKey);
                    HtmlMeta metaDesc = new HtmlMeta();
                    metaDesc.Name = "description";
                    metaDesc.Content = "xe đạp điện, xe đạp gấp, xe đạp fixed gear, xe đạp thể thao chính hãng";
                    Page.Header.Controls.Add(metaDesc);
                    Page.Title = "Xe đạp chính hãng Ecogo";
                }
                else if(OriginId == 3)
                {
                    //topbike
                    HtmlMeta metaKey = new HtmlMeta();
                    metaKey.Name = "keywords";
                    metaKey.Content = "nhà phân phối xe đạp điện gấp, xe đạp thể thao, xe đạp fixed gear chính hãng nhãn hiệu Topbike";
                    Page.Header.Controls.Add(metaKey);
                    HtmlMeta metaDesc = new HtmlMeta();
                    metaDesc.Name = "description";
                    metaDesc.Content = "xe đạp điện, xe đạp gấp, xe đạp fixed gear, xe đạp thể thao chính hãng";
                    Page.Header.Controls.Add(metaDesc);
                    Page.Title = "Xe đạp chính hãng Topbike";
                }
                LoadProductByOriginId(OriginId);
            }
            else
            {
                SEO();
                ltrCateName.Text = "Danh sách sản phẩm";
                Page.Title = " Danh sách sản phẩm | " + Ultility.WebTitle();
                LoadProduct(0);
            }
        }
        void SEO()
        {

            sysConfigDO objConfig = new sysConfigDO();
            objConfig.ConfigID = 2;

            objConfig = new sysConfigBL().Select(objConfig);


            HtmlMeta metaKey = new HtmlMeta();
            metaKey.Name = "keywords";
            metaKey.Content = objConfig.ConfigValue;
            Page.Header.Controls.Add(metaKey);


            objConfig.ConfigID = 3;
            objConfig = new sysConfigBL().Select(objConfig);
            HtmlMeta metaDesc = new HtmlMeta();
            metaDesc.Name = "description";
            metaDesc.Content = objConfig.ConfigValue;
            Page.Header.Controls.Add(metaDesc);
        }
        void LoadDrop()
        {
            dropOrigin.Items.Clear();
            dropCateProduct.Items.Clear();
            cmsOriginBL itemOriginBL = new cmsOriginBL();
            cmsProductCategoryBL itemProCate = new cmsProductCategoryBL();
            DataTable tbProCate = itemProCate.SelectAll();
            DataTable tbOrigin = itemOriginBL.SelectAll();

            ListItem itemRoot = new ListItem("---- Chọn hãng xe ----", "0");
            dropOrigin.Items.Insert(0, itemRoot);
            foreach (DataRow item in tbOrigin.Rows)
            {
                string name = item["Origin"].ToString();
                string id = item["OriginID"].ToString();
                ListItem ltItem = new ListItem(" -- " + name, id);
                dropOrigin.Items.Add(ltItem);
            }

            ListItem itemRoot1 = new ListItem("---- Chọn loại xe ----", "0");
            dropCateProduct.Items.Insert(0, itemRoot1);
            foreach (DataRow item in tbProCate.Rows)
            {
                string name = item["ProductCategoryTitle"].ToString();
                string id = item["ProductCategoryID"].ToString();
                ListItem ltItem = new ListItem(" -- " + name, id);
                dropCateProduct.Items.Add(ltItem);
            }
        }

        void Search()
        {
            int procateId = -1;
            int originId = -1;
            object fromPrice = 0;
            object toPrice = 0;
            int isPrice = 1;
            if (dropCateProduct.SelectedValue != "0")
            {
                procateId = int.Parse(dropCateProduct.SelectedValue);
                ltrCateName.Text = new cmsProductCategoryBL().Select(new cmsProductCategoryDO() { ProductCategoryID = procateId }).ProductCategoryTitle;
            }
            if (dropOrigin.SelectedValue != "0")
            {
                originId = int.Parse(dropOrigin.SelectedValue);
            }
            if (txtFromPrice.Text != "")
            {
                fromPrice = int.Parse(txtFromPrice.Text);
            }
            if (txtToPrice.Text != "")
            {
                toPrice = int.Parse(txtToPrice.Text);
            }
            if (txtToPrice.Text != "" && txtFromPrice.Text != "")
            {
                isPrice = 0;
            }
            Page.Title = " Kết quả tìm kiếm | " + Ultility.WebTitle();
            SEO();
            search(procateId, originId, fromPrice, toPrice, isPrice);
        }
        private void LoadArticleByCategory(DataTable dt)
        {
            CollectionPager1.MaxPages = 10000;

            CollectionPager1.PageSize = 28; // số items hiển thị trên một trang

            CollectionPager1.DataSource = dt.DefaultView;

            CollectionPager1.BindToControl = rptNewProduct;
            rptNewProduct.DataSource = CollectionPager1.DataSourcePaged;
            rptNewProduct.DataBind();
        }
        private void LoadProduct(int productCategoryID)
        {
            LoadArticleByCategory(new cmsProductBL().SelectByProductCategoryAll(productCategoryID));
        }
        private void LoadProductByPrice(object fromPrice, object toPrice)
        {
            LoadArticleByCategory(new cmsProductBL().GetByPrice(fromPrice, toPrice));
        }
        private void LoadProductByOriginId(int OriginId)
        {
            LoadArticleByCategory(new cmsProductBL().GetByOriginID(OriginId));
        }
        void search(int proCateId, int OriginId, object fromPrice, object toPrice, int IsPrice)
        {
            LoadArticleByCategory(new cmsProductBL().SearchSenior(proCateId, OriginId, fromPrice, toPrice, IsPrice));
        }
        protected string FriendlyUrl(string s)
        {
            return Ultility.Change_AV(s);
        }
        protected void btnSearchs_Click(object sender, EventArgs e)
        {
            Search();
        }
    }
}